#ifndef ROTATE_H
#define ROTATE_H
//11-17
#include "alg_type_defs.h"
#include "surface.h"

GEO_ALG_BEGIN_NAMESPACE

GEO_ALG_API Point2d rotate(const Point2d& src,
                           double angle,
                           const Point2d& ref_pnt = Point2d(0, 0)
                          );

GEO_ALG_API LineSegment2d rotate(const LineSegment2d& line,
                                 double angle,
                                 const Point2d& ref_pnt = Point2d(0, 0)
                                );

GEO_ALG_API Point3d rotate(const Point3d& src,
                           double angle,
                           const Vector3d& axis
                          );

GEO_ALG_API Point3d rotate(const Point3d& src,
                           double angle,
                           const LineSegment3d& line
                          );

GEO_ALG_API  Surface rotate(const Surface& src, double angle, const Vector3d& axis);

GEO_ALG_API Surface rotate(const Surface& src, double angle, const LineSegment3d& line);


GEO_ALG_END_NAMESPACE


#endif // ROTATE_H
